The present invention relates generally to a system and method for invocation and fulfillment of service requests from a communication device in a communication system, and relates more particularly to a system and method for invocation and fulfillment of services requested from a communication device preprogrammed to recognize service invocation codes.
Invocation and fulfillment of services from a communication device, especially a telephone, in a communication system has been implemented in accordance with various techniques to help simplify service invocation and expand service offerings. Such systems could be employed, for example, to direct a call to a pizzeria nearest the caller's home address when the call is placed to a central number to order a pizza.
Prior service invocation systems have been implemented in a communication system with a telecommunications switch configured to recognize a service invocation and conduct operations leading to service fulfillment. A telecommunications switch is a component in a networked communication system, responsible for providing connections through the communication system on an automatic basis. A cellular communication system employs telecommunications switches called mobile switching centers (MSC) that operate to provide connectivity for cellular radio-based communications. The term “telecommunications switch” is meant to encompass MSCs, wireline or land-based communications switches, IP PBX (internet protocol private branch exchange), television set-top boxes, routers, session initiation protocol (SIP) devices, and any other type of telecommunications equipment that can offer automatic switching.
Transmitted dialed digit strings may be used to invoke services from a communication device. Typically, the dialed digit strings are shorter than a directory telephone number, and are sometimes referred to as “short codes.” In the following discussion, the term short code refers to an entire dialed digit string representing a code other than a directory dialed number. The short code is to be differentiated from a short message service (SMS) code, where a user purposely selects SMS messaging to send a message, and sends a code to a particular SMS address entered by the user. The user provides the short code with an originating communication device, such as a telephone, and then transmits the short code to a telecommunications switch to prompt the service invocation. The short code typically includes a code prefix, such as “#”, followed by a service code, which is a string of numerical digits that can be represented as letters associated with numerical buttons on a telephone keypad.
One available system uses transmitted dialed digit strings referred to as abbreviated dial codes (ADCs) to permit service invocation. The ADCs are typically associated with a specific carrier, and are implemented by provisioning a telecommunications switch with static entries in a translation table or with static translation rules. The translation table or rules have entries for ADCs and corresponding directory telephone numbers into which the ADCs are translated. The ADC is recognized by the telecommunications switch as a call that receives special treatment compared to a directory telephone number call.
An example of an ADC implementation involves a cellular phone communicating with a serving mobile switch center (MSC). The cellular phone user enters an ADC and presses “send” to transmit the ADC to the MSC. The MSC translates the ADC to a dialable or “routable” number for purposes of call setup. The resulting routable number is used to connect the caller with an interactive voice response (IVR) that provides voice prompts to permit the caller to select desired content, which is pushed to the wireless phone upon selection. The translations typically convert the ADC to a toll-free number for the purposes of routing a call from a communication device through the communication network. In this configuration, a translation entry or a translation rule is provisioned within the MSC for each ADC for each service desired, and for each carrier that wishes to provide the service indicated by the associated ADC.
One short code system involves GSM (Global System for Mobile Communications) unstructured supplementary service data (USSD), which provides a standard-based approach to allow users to use preprogrammed, i.e., USSD capable mobile devices, to make special network service requests, such as account balance inquiries, initiating/canceling call forwarding, and other service requests, for example. The telecommunication switches and USSD capable devices, such as mobile devices capable of making special network service requests, are provisioned or preprogrammed to recognize a specific dialing sequence containing a special prefix and special suffix. The prefix, such as “**”, for example, and suffix, such as “#” indicate that the code encompassed by the prefix and suffix is a USSD code, which is recognized by both the communication device and telecommunication switch to fulfill the special network service request. The preprogramming and provisioning of both the communication device and the telecommunications switch is based on GSM standards specified by standard committees associated with implementing the GSM standards.
In some cellular radio telecommunication systems, the MSC is provisioned with triggers to recognize short codes. U.S. Pat. No. 5,898,917 describes one prior system, in which trigger criteria is defined in the MSC using the “#” character. Calls received by the MSC that include the “#” character are followed by a digit sequence that identifies the service to be invoked. Receipt of the “#” character results in the MSC suspending call processing and generating a service query message to a service control point (SCP). The service query message includes the digit sequence identifying the invoked service. The SCP interprets the query message including the digit string to determine how the call is to be handled. The SCP provides a response to the MSC with instructions or information that indicates how the call is to be handled. If the SCP recognizes the digit sequence, the response to the MSC typically indicates that the call should be forwarded to an IVR system where the caller receives voice content, such as voice instructions or information.
As described above, a trigger is a configuration of call-processing logic associated with a given point in a call. Triggers are generally implemented in software to carry out instructions to initiate a communication network process based on analysis of status conditions at a detection point (DP) in the call. A DP is a part of a sequence in a basic call state model (BCSM) at which status conditions related to the call can be determined.
In the above described arrangement, the telecommunications switch in the communication system is configured and enabled to recognize short codes. The telecommunications switch may be configured for a variety of triggers, including subscriber-based, group-based and office-based. Subscriber-based triggers, which a carrier implements in a separate database, instruct the telecommunication switch how to handle a call from a specific subscriber containing a digit string containing a short code. Group-based triggers provide call handling that is consistent for a particularly defined group. Office-based triggers are provided for general use to handle calls for a generic user. The features provided by office-based triggers are generally available to all users that access the telecommunications switch. The user need not have a subscription or registration to obtain the features offered by the provisioning in the telecommunications switch of the office-based trigger. Implementing an office-based trigger is accomplished by reconfiguring the telecommunications switch to recognize the desired short codes.
Services available through short code dialing can relate to telecommunication features, such as 800 services, credit card verification, geographic call routing, flexible call routing, flexible carrier selection and other features that may be carrier based. In addition, a variety of service fulfillment activities are available that are not necessarily related to telecommunication service. For example, service fulfillment may be in the form of storage of a preference, a return voice call, an SMS (short message service) text message, email messages, facsimile machine delivery, a WAP (wireless application protocol) push, or traditional postal system mail. Types of services that may be available can include, for example, providing information about advertised products or services, participation in voting or polling activities, obtaining reprints of articles or other publications, browsing and purchasing magazine subscriptions, or downloading of ring tones.
The provisioning of translation entries, translation rules or triggers in the MSC can be complex and relatively difficult, and thus represents an administrative burden for administrators of the MSC and the communication system. The volume of services that may be made available can be vast, and the available services may change on a rapid basis. For example, an offered service may be tied to a short-term promotional activity of a sponsor for a specific time interval of a given day. Implementing such a service would mean provisioning the MSC with a specific translation entry, translation rule or trigger to recognize the short code, and subsequently removing the translation entry, translation rule or trigger for recognition of the short code shortly thereafter. Each time an administrator interacts with the MSC to provide or remove translation or trigger provisions, the effort can prove costly, complex and time consuming. Translations or triggers may be provisioned in an MSC and armed or disarmed according to how a service provider or carrier wishes to offer a service connected with the translation or trigger. However, changing how a translation or trigger is armed or disarmed represents a similar challenge to that of modifying the MSC in that the carrier subscriber database would be modified to reflect the change in translation or trigger treatment.
In addition, provisioning an MSC to recognize a short code represents a nontrivial task because of the configuration of the MSC and the BCSM. Provisioning a given office-based trigger, for example, intended to recognize a short code, calls for selective arming according to a number of different criteria. The trigger may be inserted in a number of different DPs within the BCSM. In addition, the trigger may have a number of different criteria for being actuated.
For example, subscriber-based intelligent network triggering may be armed at a home location register (HLR), allowing establishment of trigger criteria at a serving visitor location register (VLR) and MSC. However, trigger conflicts may arise at the MSC when various applications, such as, for example, prepaid communication service, virtual private network (VPN) and other trigger-based applications vie for trigger firing at the same DP within the intelligent network BCSM.
Previous approaches to solving these conflicts, sometimes referred to as “trigger collisions,” involve the use of a service interaction manager, which is a functional element that, in the case of an office-based trigger, mediates messaging between the telecommunications switch or MSC and SCP to permit multiple applications to use the same DP. Trigger-based applications typically seek to be actuated or fired at DP number two (DP-2) for most implementations.
The service interaction manager is configured to receive an initial query from an MSC to manage the services invoked at a triggered DP acting as the source of the query. The service interaction manager therefore manages interactions between services that are provisioned at the same trigger point. The management provided by the service interaction manager permits service invocation priority to be established, as well as providing interaction between network components to appropriately handle all service invocations while avoiding service invocation interference. The service interaction manager function may reside in the HLR or the SCP.
In the case of short code services implemented in a telecommunications switch or MSC at a given trigger detection point in the BCSM, there is a limitation on the trigger responses. The trigger firing criteria for particular digits that are part of the short code, such as “#”, causes a query or message to be launched to the same SS7 point code destination address, regardless of the particular digits that are used. SS7 signaling and addressing is described in greater detail below. For example, appropriate triggers provisioned in the telecommunications switch or MSC to recognize and trigger on the short codes #238, **1234 and ##9837 all cause a query to be initiated and routed to one SCP to seek differentiation of the services invoked by the different short codes. Each of the short codes may be managed and provided by a different service provider. The service interaction manager is unable to easily differentiate the different service providers for short code services, since it is functionally directed to differentiating applications that share a DP trigger in the BCSM. That is, the service interaction manager cannot easily differentiate short codes that have the same trigger criteria at the same DP trigger. In addition, the SCP is unable to distinguish the services associated with different short codes because it operates with SS7 signaling, which is limited in the types of control that is possible within the available messaging operations. The SCP also does not have the functionality to fulfill service invocation requests initiated with short codes. Moreover, because it uses SS7 signaling, the SCP is unable to discriminate messages that are intended for different service requests or different service providers. The SCP can only pass on the messages to a previously provisioned forwarding address.
Accordingly, short code service invocation and service fulfillment is practically realized at present by provisioning the telecommunications switch or MSC with logic and identifiers in each instance that a short code response is desired. It would be desirable to implement a system in which short codes may be used to invoke a service, without having to reconfigure telecommunications switches or MSCs.